package com.smartleanx.module.hrm.controller.admin.employee.edu;

import com.smartleanx.framework.common.validation.InEnum;
import com.smartleanx.module.hrm.eums.employee.HighestEducationEnum;
import com.smartleanx.module.hrm.eums.employee.TeachingMethodEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import javax.validation.constraints.*;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 员工教育经历新增/修改 Request VO")
@Data
public class EmployeeEducationExperienceSaveReqVO {

    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long id;

    @Schema(description = "员工id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long employeeId;

    @Schema(description = "学历", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "学历不能为空")
    @InEnum(value = HighestEducationEnum.class, message = "学历格式不正确")
    private Integer education;

    @Schema(description = "毕业院校", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "毕业院校不能为空")
    private String graduateSchool;

    @Schema(description = "专业", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "专业不能为空")
    private String major;

    @Schema(description = "入学时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "入学时间不能为空")
    private LocalDateTime admissionTime;

    @Schema(description = "毕业时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "毕业时间不能为空")
    private LocalDateTime graduationTime;

    @Schema(description = "教学方式", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "教学方式不能为空")
    @InEnum(value = TeachingMethodEnum.class, message = "教学方式格式不正确")
    private Integer teachingMethod;

    @Schema(description = "是否第一学历", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否第一学历不能为空")
    private Integer isFirstDegree;

}
